import 'package:crclib/catalog.dart';
import 'ByteUtils.dart';

class CrcUtils {
  static List<int> getCRC16(List<int> bytes) {
    int crc16 = Crc16Modbus().convert(bytes).toBigInt().toInt();
    return ByteUtils.shortToBytes(crc16);
  }


  static List<int> getCRC32(List<int> bytes) {
    return ByteUtils.int2Byte(Crc32C().convert(bytes).toBigInt().toInt());
  }

  static List<int> getShortCheckNum(List<int> bytes){
    int checkNum = 0;
    for(int i = 0; i < bytes.length; i++){
      checkNum += bytes[i];
    }
    checkNum&= 0xFFFF;
    return ByteUtils.shortToBytes(checkNum);
    //return ByteUtils.shortToBytes(Crc16Modbus().convert(bytes).toBigInt().toInt());
  }

}
